/* === reset.css === */


/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}


/* HTML5 display-role reset for older browsers */

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}

body {
	line-height: 1;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}


/* === style-html.css === */


/*
 *  HTML / body level CSS rules
 *
 *  Includes font loading rules.
 */

.clear {
	clear: both;
}


/* Used to allow browser search for e.g. ".duk_push_nan" in the index,
 * but leave the dot hidden.  Note that "display: none" or "visibility: hidden"
 * don't work, as browsers (at least Chromium) won't then find the char
 * in a search.
 */

.hidechar {
	color: #ffffff;
	font-size: 0pt;
}


/* Horizontal rules have been added for text browsers, never show them
 * normally.
 */

hr {
	display: none;
}

html {
	background: #ffffff;
	color: #000000;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
}

body {
	background: #ffffff;
	color: #000000;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	font-family: 'Open Sans', sans-serif;
	/*font-family: 'Open Sans', fantasy;*/
	/* useful for debugging font loading */
	font-weight: 400;
	font-size: 12pt;
}

@media print {
	body {
		font-family: serif;
		font-weight: 400;
		font-size: 10pt;
	}
}


/* web font loading */

html {
	visibility: hidden;
}

html.wf-active {
	visibility: visible;
}

html.wf-inactive {
	visibility: visible;
}

html.wf-fail {
	/* custom rule, see: http://kevindew.me/post/47052453532/a-fallback-for-when-google-web-font-loader-fails */
	visibility: visible;
}

html.wf-nojavascript {
	/* custom rule, allows non-javascript browsers to render using fallback fonts */
	visibility: visible;
}


/* === style-content.css === */


/*
 *  Content CSS rules.
 *
 *  The 'content' class can be applied to any element which wants to get
 *  styling for "main content".
 */


/*
 *  Common headings, text styles etc
 */

.content .main-title {
	font-size: 24pt;
	margin: 0 0 2ex 0;
	color: #000000;
	text-shadow: 1px 1px 1px #777777;
	filter: dropshadow(color=#777777, offx=1, offy=1);
}

@media print {
	.content .main-title {
		font-size: 21pt;
		text-shadow: none;
		filter: none;
	}
}

.content h1 {
	font-size: 21pt;
	margin: 4ex 0 1ex 0;
	padding: 0 0 1ex 0;
	border-bottom: 1px solid #eeeeee;
}

@media print {
	.content h1 {
		font-size: 16pt;
	}
}

.content h1 a {
	color: #000000;
	text-decoration: none;
}

.content h1 a:visited {
	color: #000000;
	text-decoration: none;
}

.content h1 a:hover {
	color: #222266;
	text-decoration: none;
}

.content h2 {
	font-size: 18pt;
	margin: 2ex 0 1ex 0;
	color: #6666ff;
}

@media print {
	.content h2 {
		font-size: 13pt;
	}
}

.content h3 {
	font-size: 14pt;
	font-weight: bold;
	margin: 2.5ex 0 0.5ex 0;
	color: #000000;
}

@media print {
	.content h3 {
		font-size: 12pt;
	}
}

.content p {
	font-size: 12pt;
	margin: 2ex 0 1ex 0;
	line-height: 1.4;
}

@media print {
	.content p {
		font-size: 10pt;
	}
}

.content tt, .content code, .content samp {
	font-family: 'Droid Sans Mono', sans-serif;
}

@media print {
	.content tt, .content code, .content samp {}
}

.content b {
	font-size: 12pt;
	font-weight: 700;
}

@media print {
	.content b {
		font-size: 10pt;
	}
}

.content ul {}

.content ul li {
	margin: 1ex 0 1ex 2em;
	/* list-style: disc; */
	list-style: circle;
	list-style-position: outside;
	line-height: 1.4;
}


/* Special style for tag lists.  Disable link text-shadow because it
 * causes layout sizes when hovering over the links (apparently the
 * shadow somehow changes the item's size at least from multi-column
 * layout perspective).  Because of no text-shadow, the link hover is
 * not as visible, so add a faint background and a darker color.
 */

ul.taglist {
	-moz-column-count: 4;
	/* Firefox */
	-webkit-column-count: 4;
	/* Safari and Chrome */
	column-count: 4;
	font-size: 10pt;
}

ul.taglist li {
	margin: 0.25ex 0 0.25ex 2em;
	list-style: none;
	line-height: 1.2;
}

ul.taglist li a {
	text-decoration: none;
}

ul.taglist li a:hover {
	/* Remove text-shadow and filter from .content a:hover rule */
	background-color: #eeeeff;
	color: #000088;
	text-decoration: underline;
	text-shadow: none;
	filter: none;
}

@media screen and (max-width:800px) {
	.taglist {
		-moz-column-count: 1;
		/* Firefox */
		-webkit-column-count: 1;
		/* Safari and Chrome */
		column-count: 1;
	}
}


/* special styling for breakdowns (additive to base ul / ul li style) */

ul.breakdown {
	margin: 2ex 0 2ex 2em;
	/* additional indent */
}

ul.breakdown li {
	list-style: none;
	padding: 0.5ex 2ex 1ex 2ex;
	/*background: #f8f8f8;*/
	border: 2px solid #eeeeee;
	border-radius: 10px;
	margin: 1ex 0 1ex 0;
}

@media screen and (max-width:800px) {
	ul.breakdown {
		margin: 2ex 0 2ex 0;
		/* remove indent */
	}
}

.content pre {
	overflow: auto;
	font-family: monospace;
	font-size: 10pt;
	font-weight: 400;
	line-height: 1.5;
	background: #eeeeee;
	border: 2px dashed #cccccc;
	padding: 1.5ex;
	margin: 2ex 2em 2ex 0ex;
}

@media print {
	.content pre {
		overflow: visible;
		font-family: monospace;
		font-size: 10pt;
		font-weight: 400;
		page-break-inside: avoid;
	}
}


/* narrow layout: smaller preformatted text (tends to be quite wide) */

@media screen and (max-width:800px) {
	.content pre {
		font-size: 10pt;
	}
}


/* generated manually with buildimages.py */

@media screen {
	.content pre.c-code {
		background: #eeeeee url() no-repeat right top;
	}
	.content pre.ecmascript-code {
		background: #eeeeee url() no-repeat right top;
	}
	.content pre.coffeescript-code {}
}


/*
 *  Table
 */


/* containing div.table-wrap ensures table overflow works cleanly */


/* http://stackoverflow.com/questions/1648622/tables-overflowing-with-css-in-firefox */

.content .table-wrap {
	overflow: auto;
}

@media print {
	.content .table-wrap {
		overflow: visible;
	}
}

.content table {
	margin: 2ex 1em 2ex 1em;
	border: none;
}

.content table tr {}

.content table tr.header th {
	padding-bottom: 1ex;
}

.content table tr.header {
	border-bottom: 1px solid #cccccc;
}

.content table th {
	padding: 0.75ex 0.75em 0.75ex 0.75em;
	text-align: left;
	font-weight: 700;
}

.content table td {
	padding: 0.75ex 0.75em 0.75ex 0.75em;
	text-align: left;
}

.content a {
	text-decoration: none;
	color: #4444ff;
}

.content a:visited {
	color: #4444ff;
}

.content a:hover {
	text-decoration: underline;
	color: #222266;
	text-shadow: 0px 0px 10px #7777ff;
	filter: dropshadow(color=#9999ff, offx=1, offy=1);
}


/*
 *  Stack
 */

.content .stack-wrapper {
	display: block;
	margin-top: 1ex;
	margin-bottom: 2ex;
}


/* narrow layout: smaller font */

@media screen and (max-width:800px) {
	.content .stack-wrapper {
		font-size: 10pt;
	}
}


/* .arrow and .arrow .text have invisible borders, shadows, etc, to keep
 * them aligned
 */

.content .stack-wrapper .arrow {
	display: inline-block;
	margin: 0 0.1em 0 0.1em;
	padding: 0;
	vertical-align: middle;
}

.content .stack-wrapper .arrow b {
	display: inline-block;
	min-width: 1.25em;
	margin: 0;
	padding: 0;
	vertical-align: middle;
	text-align: center;
	font-size: 24pt;
}

.content .stack-wrapper .stack {
	display: inline-block;
	background: #eeeeee;
	margin: 0;
	border: 2px solid #888888;
	border-radius: 10px;
	box-shadow: 3px 3px 5px #bbbbbb;
	padding: 0.7ex 1ex 0.7ex 1ex;
	vertical-align: middle;
}

.content .stack-wrapper .stack .elem {
	display: inline-block;
	min-width: 1.25em;
	background: #cccccc;
	margin: 0;
	/* space chars between spans are enough */
	border: 1px solid #888888;
	border-radius: 5px;
	box-shadow: 1px 1px 3px #bbbbbb;
	padding: 0.5ex 0.35em 0.5ex 0.35em;
	vertical-align: middle;
	text-align: center;
}

.content .stack-wrapper .stack .ellipsis {
	width: 2em;
	text-align: center;
}

.content .stack-wrapper .stack .active {
	background: #ffffff;
}

.content .stack-wrapper .stack .referred {
	background: #dddddd;
}

.content .stack-wrapper .stack .ghost {
	border-style: dashed;
	background: #eeeeee;
	color: #666666;
	box-shadow: none;
}


/* orthogonal */

.content .stack-wrapper .stack .literal {
	font-family: monospace;
	font-size: 12pt;
}

.content .stack-wrapper .stack .cap {
	display: none;
}

.content .stack-wrapper .stack-comment {
	display: inline-block;
	margin: 0 0 0 2em;
	padding: 0;
	vertical-align: middle;
	text-align: center;
	font-size: 12pt;
	color: #888888;
}


/*
 *  Callouts
 */

.content .tip {
	border: 2px solid #eeeeee;
	background: #ffffff;
	color: #000000;
	padding: 1.5ex;
	margin: 2ex 2em 2ex 0ex;
	line-height: 1.4;
}

.content .tip:before {
	content: "TIP: ";
	font-weight: 700;
}

.content .note {
	border: 2px solid #eeeeee;
	background: #ffffff;
	color: #000000;
	padding: 1.5ex;
	margin: 2ex 2em 2ex 0ex;
	line-height: 1.4;
}

.content .note:before {
	content: "NOTE: ";
	font-weight: 700;
}

.content .fixme {
	border: 2px solid red;
	background: #000000;
	color: #ffffff;
	padding: 1.5ex;
	margin: 2ex 2em 2ex 0ex;
	line-height: 1.4;
}

.content .fixme:before {
	content: "FIXME: ";
	font-weight: 700;
}


/*
 *  Section sign link
 */

.content .sectiontitle a.sectionlink {
	color: #ffffff;
}

.content .sectiontitle:hover a.sectionlink {
	color: #8888ff;
}

@media print {
	.content .sectiontitle .sectionlink {
		display: none;
	}
}


/*
 *  Prevent breaking a span
 */

.nobreak {
	-webkit-hyphens: none;
	-moz-hyphens: none;
	hyphens: none;
}


/* === style-top.css === */


/*
 *  Site top part CSS rules
 */

#site-top {
	display: block;
	width: 100%;
	padding: 20px 0px 20px 0px;
	border: 0;
	margin: 0;
	background: #444444;
	color: #ffffff;
	box-shadow: 7px 7px 15px #bbbbbb;
	/* This only matters if the browser is so narrow that the nav
	 * div clears the logo.  This rule extends the dark background
	 * to cover the nav even in that case.
	 */
	overflow: auto;
	/* Font is already set here so that we can size both the logo
	 * and the nav float using the same font point size (point
	 * sizes refer to -parent- font).
	 */
	font-family: 'Droid Sans Mono', sans-serif;
	font-size: 24pt;
	font-weight: 400;
}

@media print {
	#site-top {
		display: none;
	}
}

#site-top-logo {
	display: block;
	float: left;
	margin: 0 0 0 0.5em;
	/* logo font */
}

#logo {
	display: inline;
	font-family: 'Droid Sans Mono', sans-serif;
	font-size: 24pt;
	font-weight: 400;
	color: #ffffff;
	text-shadow: 3px 3px 3px #000000;
	filter: dropshadow(color=#000000, offx=3, offy=3);
}

@media print {
	/* Note: not actually displayed now in print (the entire top
	 * div is hidden).
	 */
	#logo {
		font-family: 'Droid Sans Mono', sans-serif;
		font-size: 20pt;
		font-weight: 400;
	}
}

#site-top-nav {
	display: block;
	float: right;
	margin: 0 0.75em 0 0;
	/* logo font */
}

#site-top-nav ul {
	display: inline;
	vertical-align: bottom;
	line-height: 24pt;
	margin: 0;
	border: 0;
	padding: 0;
	/* 'line-height' in this element is sized using logo font inherited
	 * from #site-top.  The margins in #site-top-nav are sized using the
	 * navigation font which needs to be set here (in the parent) for that
	 * to be possible.
	 */
	font-family: 'Droid Sans Mono', sans-serif;
	font-size: 18pt;
	font-weight: 400;
}

#site-top-nav ul li {
	display: inline;
	vertical-align: bottom;
	margin: 0 0.5em 0 0;
	font-family: 'Droid Sans Mono', sans-serif;
	font-size: 18pt;
	font-weight: 400;
	color: #cccccc;
}

#site-top-nav ul li a {
	color: #cccccc;
	text-decoration: none;
}

#site-top-nav ul li.selected a {
	color: #ffffff;
	text-shadow: 3px 3px 3px #000000;
	filter: dropshadow(color=#000000, offx=3, offy=3);
}

#site-top-nav ul li a:hover {
	color: #9999ff;
	text-shadow: 3px 3px 3px #000000;
	filter: dropshadow(color=#000000, offx=3, offy=3);
}


/* === style-middle.css === */


/*
 *  Site middle part CSS rules
 */

#site-middle {
	width: 100%;
	padding: 0;
	border: 0;
	margin: 10ex 0 10ex 0;
	background: #ffffff;
	color: #000000;
	overflow: auto;
	/* clear fix */
}

#site-middle-nav {
	float: left;
	width: 10em;
	padding: 0;
}

#site-middle-nav li {
	margin: 0.5ex 0 0.5ex 1em;
	list-style: none;
	list-style-position: outside;
}

#site-middle-nav a {
	color: #444444;
	font-size: 10pt;
	text-decoration: none;
}

#site-middle-nav a:hover {
	color: #222266;
	text-shadow: 0px 0px 10px #7777ff;
	filter: dropshadow(color=#9999ff, offx=1, offy=1);
}

#site-middle-content {
	margin: 0px 2em 0px 14em;
	overflow: auto;
	/* clear fix */
}

@media print {
	#site-middle-nav {
		display: none;
	}
	#site-middle-content {
		margin: 0px 0px 0px 0px;
	}
}


/* narrow screen */

@media screen and (max-width:800px) {
	#site-middle-nav {
		float: none;
		margin-bottom: 8ex;
		/* space before content */
	}
	#site-middle-content {
		margin-left: 2em;
	}
}


/* === style-bottom.css === */


/*
 *  Site bottom part CSS rules
 */

#site-bottom {
	clear: both;
	width: 100%;
	padding: 18px 0px 20px 0px;
	border: 0;
	border-top: 2px solid #dddddd;
	margin: 10ex 0px 0px 0px;
	background: #eeeeee;
	color: #888888;
	font-size: 10pt;
}

@media print {
	#site-bottom {
		font-size: 8pt;
	}
}

#site-bottom p {
	color: #888888;
	margin-top: 1ex;
	text-align: center;
}

#site-bottom a {
	color: #6666ee;
	text-decoration: none;
}

#site-bottom a:visited {
	color: #6666ee;
	text-decoration: none;
}

#site-bottom a:hover {
	color: #222288;
	text-decoration: underline;
}


/* === style-index.css === */


/*
 *  Frontpage specific CSS rules
 */

#front-steps {
	width: 45%;
	float: right;
	/*
	background: #fcfcfc;
	border: 2px solid black;
	border-radius: 1em;
	box-shadow: 3px 3px 5px #bbbbbb;
	margin: 0 1em 1em 0;
	padding: 1em;
*/
	background: #ffffff;
	border-left: 2px dashed #bbbbbb;
	margin: 0 1em 1em 0;
	padding: 1em;
}

#front-steps .step {
	font-weight: bold;
	margin-right: 0.5em;
	color: #eeeeee;
	/* off white to work in IE6 where dropshadow not recognized */
	font-size: 24pt;
	text-shadow: 0px 0px 6px #000000;
	filter: dropshadow(color=#000000, offx=2, offy=2);
}

#front-steps pre {
	font-size: 12pt;
}

#front-blurp {
	width: 45%;
	float: left;
	margin: 0 0 1em 1em;
}

#front-blurp p {
	font-size: 16pt;
}

#front-blurp b {
	font-size: 16pt;
}

@media screen and (max-width:800px) {
	#front-steps {
		float: none;
		width: auto;
		margin: 0 1em 1em 1em;
	}
	#front-blurp {
		float: none;
		width: auto;
		margin: 0 1em 4em 1em;
		/* extra bottom margin: space before steps */
	}
}

#front-blurp ul {
	margin-top: 2ex;
	font-size: 16pt;
}

#front-blurp ul li {
	margin-top: 1.5ex;
	font-size: 16pt;
}


/* === style-download.css === */


/*
 *  Download page specific CSS rules
 */

#download {
	margin: 0 0 1em 1em;
}

#download .hash {
	font-family: monospace;
}

#download .latest {
	border: 1px dashed #cccccc;
	background: #f8f8f8;
}


/* Control table cells only if browser is wide enough */

@media screen and (min-width:800px) {
	.releases {
		width: 90%;
	}
	.releases tr {
		height: 3ex;
	}
	.releases .reldate {
		width: 6em;
	}
	.releases .filename {
		width: 12.5em;
	}
	.releases .description {
		/* flex */
	}
	.releases .hash {
		/* XXX: this is sized using -parent- font, not the monospace one */
		width: 20em;
	}
}


/* === style-api.css === */


/*
 *  API specific CSS rules
 */

@media screen and (min-width:801px) {
	/* On wide screens, slide API entry section headings to the side
	 * to make the entries more compact.
	 *
	 * Specificity must override normal section heading rules.
	 *
	 * The challenge here is to keep the section heading vertically
	 * aligned with the content on the right.  To do this, we need
	 * to avoid top margins in the elements on the right (paragraphs,
	 * stacks, <pre>-blocks) which is a bit hackish.  The api-part
	 * div margins are then used to provide spacing between the API
	 * documentation parts.
	 */
	.api-call h2.api-proto, .api-call h2.api-stack, .api-call h2.api-summary, .api-call h2.api-example, .api-call h2.api-seealso {
		position: absolute;
		left: 10px;
		margin: 0;
		padding: 0 0 0 0;
		width: 200px;
		text-align: right;
		height: 0;
		overflow: visible;
		color: #ccccdd;
		font-size: 100%;
	}
	.api-part {
		margin: 3ex 0 3ex 0;
	}
	.content .api-call .stack-wrapper {
		margin-top: 0;
		margin-bottom: 2ex;
	}
	.content .api-call .stack {
		margin-top: 0;
	}
	.content .api-call p {
		margin-top: 0;
	}
	.content .api-call pre {
		margin-top: 0;
	}
}


/* Selector specificity issues here, workaround is to add more selectors. */

h1.apih1 a.apitag {
	float: right;
	margin: 3px;
	border: 2px solid #cccccc;
	border-radius: 4px;
	padding: 3px;
	font-size: 8pt;
	background: #eeeeee;
	color: #888888;
}

h1.apih1 a.apitag:hover {
	background: #ffffff;
	color: #888888;
}

h1.apih1 a.apitag visited {
	color: #888888;
}

h1.apih1 a.apitagwarn {
	background: #dd0000;
	border-color: #880000;
	color: #ffffff;
}

h1.apih1 a.apitagwarn:hover {
	background: #ff8800;
	color: #ffffff;
}

h1.apih1 a.apitagwarn:visited {
	color: #ffffff;
}

h1.apih1 a.apitagprotected {
	background: #00aa00;
	border-color: #004400;
	color: #ffffff;
}

h1.apih1 a.apitagprotected:hover {
	background: #55cc55;
	color: #ffffff;
}

h1.apih1 a.apitagprotected:visited {
	color: #ffffff;
}


/* === style-guide.css === */


/*
 *  Guide specific CSS rules
 */

.typeshorthand tbody td:nth-child(1) {
	text-align: center;
}

.typecomparison tbody td {
	text-align: center;
}

.propname {
	font-family: monospace;
}

.definename {
	font-family: monospace;
}

.highlight {
	background: #eeeeee;
}


/* === highlight.css === */


/*
 *  Source highlight CSS rules
 */

body {
	background-color: white;
}


/* the color for context lines (when specified with line ranges) */

.context {
	color: gray;
}

.keyword {
	color: #000044;
	font-weight: bold;
}

.type {
	color: #000088;
}

.usertype, .classname {
	color: teal;
}

.string {
	color: #aa0000;
	font-family: monospace;
}

.regexp {
	color: orange;
}

.specialchar {
	color: #aa0000;
	font-family: monospace;
}

.comment {
	color: #999999;
	font-style: italic;
}

.number {
	color: #aa0000;
}

.preproc {
	color: darkblue;
	font-weight: bold;
}

.symbol {
	color: #000000;
	font-weight: bold;
}

.function {
	color: #000000;
}

.cbracket {
	color: #000000;
	font-weight: bold;
}

.todo {
	font-weight: bold;
	background-color: cyan;
}


/* line numbers */

.linenum {
	color: black;
	font-family: monospace;
}


/* Internet related */

.url {
	color: blue;
	text-decoration: underline;
	font-family: monospace;
}


/* other elements for ChangeLog and Log files */

.date {
	color: blue;
	font-weight: bold;
}

.time, .file {
	color: darkblue;
	font-weight: bold;
}

.ip, .name {
	color: darkgreen;
}


/* for Prolog, Perl */

.variable {
	color: darkgreen;
}

.italics {
	color: darkgreen;
	font-style: italic;
}

.bold {
	color: darkgreen;
	font-weight: bold;
}


/* for LaTeX */

.underline {
	color: darkgreen;
	text-decoration: underline;
}

.fixed {
	color: green;
	font-family: monospace;
}

.argument, .optionalargument {
	color: darkgreen;
}

.math {
	color: orange;
}

.bibtex {
	color: blue;
}


/* for diffs */

.oldfile {
	color: orange;
}

.newfile {
	color: darkgreen;
}

.difflines {
	color: blue;
}


/* for css */

.selector {
	color: purple;
}

.property {
	color: blue;
}

.value {
	color: darkgreen;
	font-style: italic;
}


/* for Oz */

.atom {
	color: orange;
}

.meta {
	font-style: italic;
}